#include <iostream>  
#include <stack>  
using namespace std;  
  
const int N = 100;  // 定义N皇后问题的规模  
int n;             // N皇后问题的规模  
int col[N];        // 列标号数组，存储每列皇后所在的列号  
int row[N];        // 行标号数组，存储每行皇后所在的行号  
int queens[N][N];  // 存储N皇后问题的解  
  
// 判断某个位置(row, col)是否可以放置皇后  
bool isValid(int row, int col) {  
    for (int i = 0; i < row; i++) {  
        if (queens[i][col] || queens[i][col - n + i] || queens[i][col + n - i]) {  
            return false;  
        }  
    }  
    return true;  
}  
  
// 在第row行放置皇后，列号从col开始递增  
void placeQueens(int row, int col) {  
    if (row == n) {  // 已经放置了n个皇后，找到了一组解  
        for (int i = 0; i < n; i++) {  
            cout << "Row " << i << ": ";  
            for (int j = 0; j < n; j++) {  
                cout << queens[i][j] << " ";  
            }  
            cout << endl;  
        }  
        return;  
    }  
    for (int i = col; i < n; i++) {  // 枚举所有列号  
        if (isValid(row, i)) {  // 如果当前位置可以放置皇后  
            queens[row][i] = 1;  // 放置皇后  
            col[row] = i;        // 更新列号数组  
            placeQueens(row + 1, 0);  // 递归放置下一个皇后  
            queens[row][i] = 0;  // 回溯，撤销当前位置皇后的放置  
        }  
    }  
}  
  
int main() {  
    cin >> n;  // 输入N皇后问题的规模n  
    placeQueens(0, 0);  // 从第0行开始放置皇后，列号从0开始递增  
    return 0;  
}